home *** CD-ROM | disk | FTP | other *** search
/ Archive Magazine CD 1995 / Archive Magazine CD 1995.iso / discs / prog_disc / volume_1 / issue_03 / wimp / operate (.txt)
Encoding:
RISC OS BBC BASIC V Source  |  1995-06-14  |  3.1 KB  |  137 lines

  1.  >$.Wimp.Operate
  2.  ***********************************
  3.  *  Operating the Windows in WIMP  *
  4.  *      By Adrian Philip Look      *
  5.  *        31st October 1987        *
  6.  ***********************************
  7. ("FX4,0"):
  8. $;" at line ";
  9.  colour=8 
  10. colour,0,0,255
  11.  colour
  12. variables
  13. version=
  14. wimp_initialise
  15. flags=
  16. flags(
  17. %title_type=
  18. title_type(
  19. Rwally%=
  20. create_window(50,50,500,500,1000,1000,flags,"Window 1",title_type,top)
  21. Thello%=
  22. create_window(400,400,900,900,1000,1000,flags,"Window 2",title_type,top)
  23. Uanext%=
  24. create_window(800,200,1000,700,1000,1000,flags,"Window 3",title_type,top)
  25. Swhich%=
  26. create_window(50,700,400,800,1000,1000,flags,"Window 4",title_type,top)
  27. open_window(wally%,
  28. open_window(hello%,
  29. open_window(anext%,
  30. open_window(which%,
  31.  "Wimp_ForceRedraw",-1,0,0,1280,1024
  32. *POINTER
  33.  "Wimp_Poll",mask,block% 
  34.  reason
  35. handle=!block%
  36. wimp_poll(reason,handle)
  37. variables
  38.  block% &100
  39. title_foreground=1
  40. title_background=6
  41. work_area_foreground=1
  42. work_area_background=7
  43. scroll_bar_inner=1
  44. scroll_bar_outer=6
  45. top=-1
  46. mask=0
  47. amountx=100
  48. amounty=100
  49. wimp_poll(reason,handle)
  50. 7    *FX19
  51.  reason 
  52. open_window(handle,
  53. close_window(handle)
  54. scroll_acknowledge
  55. wimp_initialise
  56.  version%
  57.  "Wimp_Initialise",0 
  58.  version%
  59. =version%/100
  60. create_window(x0,y0,x1,y1,sizex,sizey,flags,title$,title_type,pos)
  61. block%!0=x0
  62. block%!4=y0
  63. block%!8=x1
  64. block%!12=y1
  65. block%!16=0
  66. block%!20=0
  67. block%!24=pos
  68. block%!28=flags
  69. block%?32=title_foreground
  70. block%?33=title_background
  71. V"block%?34=work_area_foreground
  72. W"block%?35=work_area_background
  73. block%?36=scroll_bar_outer
  74. block%?37=scroll_bar_inner
  75. block%?38=0
  76. block%!40=0
  77. block%!44=-sizey
  78. block%!48=sizex
  79. block%!52=0
  80. block%!56=title_type
  81. $(block%+72)=
  82. title$,11)
  83. block%!84=0
  84.  "Wimp_CreateWindow",0,block% 
  85.  handle%
  86. =handle%
  87. flags(tbar,move,vscb,hscb,boqb,scrl)
  88.  flag%
  89. flag%=&10
  90.  tbar 
  91.  flag%=flag% 
  92.  move 
  93.  flag%=flag% 
  94.  vscb 
  95.  flag%=flag% 
  96.  hscb 
  97.  flag%=flag% 
  98.  boqb 
  99.  flag%=flag% 
  100.  scrl 
  101.  flag%=flag% 
  102.  &100
  103. =flag%
  104. title_type(hasb,text,txhc,txvc,back)
  105.  flag%
  106.  hasb 
  107.  flag%=flag% 
  108.  text 
  109.  flag%=flag% 
  110.  txhc 
  111.  flag%=flag% 
  112.  txvc 
  113.  flag%=flag% 
  114.  back 
  115.  flag%=flag% 
  116. =flag%
  117. open_window(handle,new)
  118.  new 
  119. block%!0=handle
  120.  "Wimp_GetWindowInfo",,block%
  121. block%!28=top
  122.  "Wimp_OpenWindow",,block%
  123. close_window(handle)
  124. !block%=handle
  125.  "Wimp_CloseWindow",,block%
  126. delete_window(handle)
  127. !block%=handle
  128.  "Wimp_DeleteWindow",,block%
  129. scroll_acknowledge
  130. scx=block%!20
  131. scy=block%!24
  132. scx+=(block%!32)*amountx
  133. scy+=(block%!36)*amounty
  134. block%!20=scx
  135. block%!24=scy
  136.  "Wimp_OpenWindow",,block%
  137.